package com.kuzlak.cms.module.shop.bean;


import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;

/**
 * ShopInfoVO类代表店铺信息的价值对象
 * 它封装了与店铺相关的各种属性，如店铺ID、名称、供应商代码等
 */
@Data
public class ShopInfoVO {

    /**
     * 店铺唯一标识符
     */
    @Schema(description = "店铺唯一标识符")
    private Long id;

    /**
     * 店铺名称
     */
    @Schema(description = "店铺名称", example = "Example Shop")
    @NotEmpty(message = "店铺名称不能为空")
    private String name;

    /**
     * 供应商代码，用于标识店铺的供应商
     */
    @Schema(description = "供应商代码", example = "VEND001")
    @NotEmpty(message = "供应商代码不能为空")
    private String venderCode;

    /**
     * 店铺的条形码，用于库存和销售管理
     */
    @Schema(description = "店铺条形码", example = "123456789012")
   // @NotEmpty(message = "条形码不能为空")
    private String barcode;

    /**
     * 条形码状态，表示条形码是否有效或被使用
     */
    @Schema(description = "条形码状态", example = "ACTIVE")
    private String barcodeStatus;

    /**
     * 分类代码，用于将店铺归类到特定的业务类别
     */
    @Schema(description = "分类代码", example = "CLAS001")
   // @NotEmpty(message = "分类代码不能为空")
    private String classifyCode;

    /**
     * 分类名称，描述店铺所属的具体类别
     */
    @Schema(description = "分类名称", example = "Electronics")
    @NotEmpty(message = "分类名称不能为空")
    private String classify;

    /**
     * 店铺图片的ID，用于关联店铺的视觉标识
     */
    @Schema(description = "店铺图片ID", example = "987654321")
    @NotEmpty(message = "店铺图片ID不能为空")
    private Long imageId;

    /**
     * 备注信息，提供额外的描述或注意事项
     */
    @Schema(description = "备注信息", example = "This shop is located in the downtown area.")
    @NotEmpty(message = "备注信息不能为空")
    private String remark;
}

